/*
 * @Author: HeAo
 * @Date: 2022-09-14 14:41:08
 * @LastEditTime: 2022-09-21 20:29:50
 * @LastEditors: HeAo
 * @Description: 
 * @FilePath: \第二阶段\ES6\day02\9-数组api拓展.js
 * 别乱动！
 */
// 静态
// 1.Array.from() 将类数组转为数组
console.log(Array.from('hello'));

// 2.Array.of  创建数组实例  弥补new Array(10):长度为10的数组 Array.of(10):值为10的数组
// console.log(Array.of(10));

// 3、Array.prototype.find 查找满足条件的数组元素 参数：回调函数 返回值：返回第一个符合条件的数组元素或者undefined
// var arr = [1, 2, 3, 4, 5]
// let res = arr.find((item, index, arr) => {
//   return item > 3
// })
// console.log(res);

// 4、Array.prototype.findIndex 参数：回调函数  返回值：返回第一个符合条件的索引或者-1
// var arr = [1, 2, 3, 4, 5]
// let res = arr.findIndex((item, index, arr) => {
//   return item > 2
// })
// console.log(res);

// 5、keys values entries 数组实例调用
// 返回值：

// 6、flat 展开数组
// var arr = [1, 2, 3, [4, 5, [6, 7, 8]]]
// console.log(arr.flat(1)); //[ 1, 2, 3, 4, 5, [ 6, 7, 8 ] ]
// console.log(arr.flat(2)); //[ 1, 2, 3, 4, 5, 6, 7, 8  ]

// 7、flatMap() 
var arr = [1, 2, 3, [4, 5]]
let res = arr.flatMap((item) => {
  if (typeof item == "number") {
    return item * 2
  } else {
    //当遇到数组时，再使用map再遍历一次
    return item.map(item => {
      return item * 2
    })
  }
})
console.log(res);